package hy.handler;

import hy.bean.InMessage;
import hy.bean.OutMessage;
import hy.bean.TextOutMessage;
import hy.inf.MessageProcessingHandler;
import hy.servlet.cmd.CmdProductor;

import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;

public class TestProcessingHandler implements MessageProcessingHandler{

	private OutMessage allType(InMessage msg){
		TextOutMessage out = new TextOutMessage();
		out.setContent(msg.getContent()+" " + msg.getToUserName()+" " + msg.getFromUserName());
//		msg.getRequest().getServletContext().setAttribute(CmdProductor.ATTR_NAME, msg.getContent());
		ServletRequest  request = msg.getRequest();
		if(request != null){
			out.setContent(out.getContent() + "1");
//			request.getServletContext这个方法是servlet3.0定义的
//			ServletContext context = request.getServletContext();
			HttpServletRequest req = (HttpServletRequest)request;
			ServletContext context = req.getSession().getServletContext();	
			if(context != null){
				out.setContent(out.getContent() + "1");
				context.setAttribute(CmdProductor.ATTR_NAME, msg.getContent());
			}
		}
		return out;
	}
	@Override
	public OutMessage textTypeMsg(InMessage msg) {
		return allType(msg);
	}

	@Override
	public OutMessage locationTypeMsg(InMessage msg) {
		return allType(msg);
	}

	@Override
	public OutMessage imageTypeMsg(InMessage msg) {
		return allType(msg);
	}

	@Override
	public OutMessage linkTypeMsg(InMessage msg) {
		return allType(msg);
	}

	@Override
	public OutMessage eventTypeMsg(InMessage msg) {
		return allType(msg);
	}
	@Override
	public OutMessage voiceTypeMsg(InMessage msg) {
		return allType(msg);
	}
}
